<?php

Class Registrazione extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->helper('url', 'form');
        $this->load->database();
        $this->load->model('Pet');
        $this->load->model('Utente');
        $this->load->model('Service');
        $this->load->model('Address');
        //regole di validazione del form utente_owner
        $config['form_owner_rules'] = array(
            'nome' => array('field' => 'nome', 'label' => 'Nome', 'rules' => 'required'),
            'cognome' => array('field' => 'cognome', 'label' => 'Cognome', 'rules' => 'required'),
            'giorno' => array('field' => 'giorno', 'label' => 'Giorno', 'rules' => 'equired'),
            'mese' => array('field' => 'mese', 'label' => 'Mese', 'rules' => 'required'),
            'anno' => array('field' => 'anno', 'label' => 'Anno', 'rules' => 'required'),
            'citta' => array('field' => 'citta', 'label' => 'Citta', 'rules' => 'required'),
            'indirizzo' => array('field' => 'indirizzo', 'label' => 'Indirizzo', 'rules' => 'required'),
            'email' => array('field' => 'email', 'label' => 'Email', 'rules' => 'valid_email'),
            'password' => array('field' => 'password', 'label' => 'Password', 'rules' => 'required'),
            'sesso' => array('field' => 'sesso', 'label' => 'Sesso', 'rules' => 'required'),
            'carta_identita' => array('field' => 'carta_identita', 'label' => 'Carta Identita', 'rules' => 'required'),
            'foto' => array('field' => 'foto', 'label' => 'Foto', 'rules' => 'required'),
        );
    }

    public function index() {
        $this->load->helper('form');
        //Fa visualizzare la registrazione.
        //Se riceve "Sitter" procede con la vista della registrazione del pet sitter 
        ////Se non riceve niente, và a null è fà scegliere che tipo di account
        //Se riceve "Sitter" procede con la vista della registrazione del pet sitter
        $data['title'] = "Registrati su HolidayDog";
        $data['keywords'] = "pet sitter, veterinari, accoppiamento cani, cane per accoppiamento, holidaydog";
        $data['description'] = "Holiday Dog Trovi vicino a te Pet sitter, veterinari e un network di persone con la passione per gli animali";
        $data['robots'] = "no index, no follow";
        $this->load->view('layout/head', $data);
        $this->load->view('layout/header');
        $this->load->view('layout/nav');
        //in base a role chiamo registration_owner o registration_petsitter
        $data['data']["registration_owner_form"] = $this->config->item("form_owner_rules");
        $this->load->view('contenuti/registration/reg',$data);
        $this->load->view('layout/footer');
        $this->load->view('layout/end_main');
        $this->load->view('layout/script_section');
        $this->load->view('layout/end');
    }

    public function register_owner() {
        $this->load->helper('url');
        $this->load->helper('security'); //Serve per l'MD5
        //Effettua la registrazione vera e propria e chiama la logica
        $data['title'] = "Holiday Dog";
        $data['keywords'] = "pet sitter, veterinari, accoppiamento cani, cane per accoppiamento, holidaydog";
        $data['description'] = "Holiday Dog è pensato per chi come te ha un amico speciale a 4 zampe. Holiday Dog ti permette di trovare vicino a te pet sitter per la cura del tuo cane, veterinari per garantirgli la giusta assistenza e un network di persone con cuccioli come te che hanno intenzione di condividere le proprie esperienze sul fantastico mondo degli animali domestici";
        $data['robots'] = "no index, no follow";
        //$this->load->view('layout/head', $data);
        //$this->load->view('layout/header');
        //$this->load->view('layout/nav');

        $tempId = $this->Utente->get_last_id() + 1;

        //inserimento tabella fotopetsitter
        $data = array(
            'Id' => $tempId,
            'Nome' => "Foto Profilo",
            'Descrizione' => "Foto Profilo di " . $this->input->post('nome'),
            //'Percorso' => "images/profilo/petsitter/" . $tempId . "/profile.png");
            'Percorso' => "images/default/default_profile_image.png");
        $this->Utente->insert_pet_owner_foto($data);

        //inserimento tabella utentepet
        $data = array(
            'Id' => $tempId,
            'FKPossiede' => $tempId);
        $this->Utente->insert_pet_owner_utentepet($data);

        //calcolo lat e long da indirizzo
        $indirizzoCompleto = $this->input->post('indirizzo') . ", " . $this->input->post('citta');
        $arrayindirizzo = $this->Address->getCoordinates($indirizzoCompleto);


        //inserimento finale utente
        $data = array(
            'id' => $tempId,
            'Nome' => $this->input->post('nome'),
            'Cognome' => $this->input->post('cognome'),
            'DataDiNascita' => $this->input->post('anno') . "-" . $this->input->post('mese') . "-" . $this->input->post('giorno'),
            'Citta' => $this->input->post('citta'),
            'Indirizzo' => $this->input->post('indirizzo'),
            'lat' => $arrayindirizzo['lat'],
            'long' => $arrayindirizzo['long'],
            'Email' => $this->input->post('email'),
            'password' => do_hash($this->input->post('password'), 'md5'),
            'sesso' => $this->input->post('sesso'),
            'CartaIdentita' => $this->input->post('carta_identita'),
            'FKFoto' => $tempId,
            //'FKFoto' =>$this->input->post('foto'),
            'FKPossiede' => NULL,
            'FKUtentePet' => $tempId,
            'FkUtentePetSitter' => NULL
        );
        $login['email'] = $this->input->post('email');
        $login['pass'] = do_hash($this->input->post('password'), 'md5');
        $this->Utente->insert_user($data);


        //$this->load->view('layout/footer');
        //$this->load->view('layout/end_main');
        //$this->load->view('layout/script_section');
        //$this->load->view('layout/end');
         $url = 'profilo/petowner/'.$tempId;
              redirect($url, 'refresh');
    }

    public function register_petsitter() {
        $this->load->helper('url');
        $this->load->helper('security'); //Serve per l'MD5
        //Effettua la registrazione vera e propria e chiama la logica
        $data['title'] = "Holiday Dog";
        $data['keywords'] = "pet sitter, veterinari, accoppiamento cani, cane per accoppiamento, holidaydog";
        $data['description'] = "Holiday Dog è pensato per chi come te ha un amico speciale a 4 zampe. Holiday Dog ti permette di trovare vicino a te pet sitter per la cura del tuo cane, veterinari per garantirgli la giusta assistenza e un network di persone con cuccioli come te che hanno intenzione di condividere le proprie esperienze sul fantastico mondo degli animali domestici";
        $data['robots'] = "no index, no follow";

        $tempId = $this->Utente->get_last_id() + 1;

        //inserimento tabella curriculum
        $data = array(
            'Id' => $tempId,
            'FKAnimaliAccuditi' => $tempId, 
            'FKEsperienza' => $this->input->post('anniEsperienza'),
            'TitoloAnnuncio' => $this->input->post('titoloAnnuncio'),
            'DescrizioneAnnuncio' => $this->input->post('descrizioneAnnuncio'),
            'Certificazioni' => $this->input->post('certificazioni'),
            'Specializzazioni' => $this->input->post('specializzazioni'),
            'FeedBack' => NULL,
            'AutoEmergenze' => $this->input->post('autoEmergenza'));
        $this->Utente->insert_curriculum($data);

        $animaliAccuditi = $this->input->post('animaliAccuditi');

        //inserimento tabella curriculum_to_animaliaccuditi
        for ($i = 0; $i < count($animaliAccuditi); $i++) {
            $data = array(
                'IdCurriculum' => $tempId,
                'IdAnimaliAccuditi' => $animaliAccuditi[$i]
            );

            $this->Utente->insert_curriculum_to_animali_accuditi($data);
        }

        //inserimento tabella casa
        $data = array(
            'Id' => $tempId,
            'MetriQuadri' => $this->input->post('mqCasa'), // 
            'FKTipoAbitazione' => $this->input->post('tipoAbitazione'),
            'Giardino' => $this->input->post('presenzaGiardino'),
            'MQGiardino' => $this->input->post('mqGiardino'),
            'Terrazzo' => $this->input->post('presenzaTerrazza'),
            'MQTerrazzo' => $this->input->post('mqTerrazza'),
            'VicinanzaParchi' => $this->input->post('vicinanzaParchi'),
            'PresenzaAltriAnimali' => $this->input->post('presenzaAnimali'),
            'Supervisione24H' => $this->input->post('supervisione'),
            'RitiroGratuito1KM' => $this->input->post('ritiro1Km'),
            'RitiroGratuito10KM' => $this->input->post('ritiro10Km'));
        $this->Utente->insert_casa($data);

        
        //inserimento tabella fotopetsitter
        $data = array(
            'Id' => $tempId,
            'Nome' => "Foto Profilo",
            'Descrizione' => "Foto Profilo di " . $this->input->post('nome'),
            //'Percorso' => "images/profilo/petsitter/" . $tempId . "/profile.png");
            'Percorso' => "images/default/default_profile_image.png");
        $this->Utente->insert_pet_owner_foto($data);

        //inserimento tabella costi
        $data = array(
            'Id' => $tempId,
            'CostoGiornaliero' => $this->input->post('costoGiorn'),
            'CostoOrario' => $this->input->post('costoOrario'),
            'CostoPetAggiuntivo' => $this->input->post('costoPetAgg'));
        $this->Utente->insert_costi($data);

        //inserimento tabella utentepetsitter
        $data = array(
            'Id' => $tempId,
            'FKCurriculum' => $tempId,
            'FKCasa' => $tempId,
            'FKCalendario' => "NULL",
            'FKCosti' => $tempId);
        $this->Utente->insert_petsitter($data);

        //calcolo lat e long da indirizzo
        $indirizzoCompleto = $this->input->post('indirizzo') . ", " . $this->input->post('citta');
        $arrayindirizzo = $this->Address->getCoordinates($indirizzoCompleto);

        //inserimento finale utente
        $data = array(
            'id' => $tempId,
            'Nome' => $this->input->post('nome'),
            'Cognome' => $this->input->post('cognome'),
            'DataDiNascita' => $this->input->post('anno') . "-" . $this->input->post('mese') . "-" . $this->input->post('giorno'),
            'Citta' => $this->input->post('citta'),
            'Indirizzo' => $this->input->post('indirizzo'),
            'lat' => $arrayindirizzo['lat'],
            'long' => $arrayindirizzo['long'],
            'Email' => $this->input->post('email'),
            'password' => do_hash($this->input->post('password'), 'md5'),
            'sesso' => $this->input->post('sesso'),
            'CartaIdentita' => $this->input->post('carta_identita'),
            'FKFoto' => $tempId,
            //'FKFoto' =>$this->input->post('foto'),
            'FKPossiede' => NULL,
            'FKUtentePet' => NULL,
            'FkUtentePetSitter' => $tempId
        );
        $login['email'] = $this->input->post('email');
        $login['pass'] = do_hash($this->input->post('password'), 'md5');
        //$this->Utente->get_last_id();
        $this->Utente->insert_user($data);

        $url = 'profilo/petsitter/'.$tempId;
              redirect($url, 'refresh');
 
    }

    function do_post_request($url, $data, $optional_headers = null) {
        $params = array('http' => array(
                'method' => 'POST',
                'content' => $data
        ));
        if ($optional_headers !== null) {
            $params['http']['header'] = $optional_headers;
        }
        $ctx = stream_context_create($params);
        $fp = @fopen($url, 'rb', false, $ctx);
        if (!$fp) {
            throw new Exception("Problem with $url, $php_errormsg");
        }
        $response = @stream_get_contents($fp);
        if ($response === false) {
            throw new Exception("Problem reading data from $url, $php_errormsg");
        }
        return $response;
    }

}
